package com.edcarlos.servico.dao;

import java.util.ArrayList;
import java.util.List;

import com.edcarlos.servico.bean.ListarTipoActivity;
import com.edcarlos.servico.entity.TipoServico;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

public class TipoServicoDAO {
	
	private SQLiteDatabase dataBase;
	private TipoServicoOpenHelp tipoHelp;
    private String[] colunas = {
    tipoHelp.TIPO_ID,tipoHelp.TIPO_DESCRICAO,
    tipoHelp.TIPO_SETOR,tipoHelp.TIPO_INTERNO
    };
    
    public TipoServicoDAO(Context context) {
		tipoHelp = new TipoServicoOpenHelp(context);
	}
    
    public void abrir() throws SQLException{
    	dataBase = tipoHelp.getWritableDatabase();
    }
    
    public void fechar(){
    	tipoHelp.close();
    }
    
    public long inserir(TipoServico tipo){
    	ContentValues valores = new ContentValues();
    	
    	valores.put(TipoServicoOpenHelp.TIPO_DESCRICAO, tipo.getDescricao());
    	valores.put(TipoServicoOpenHelp.TIPO_SETOR, tipo.getSetor().getId());
    	valores.put(TipoServicoOpenHelp.TIPO_INTERNO, tipo.getTipoInternoExterno().getCodigo());
    	
    	return dataBase.insert(TipoServicoOpenHelp.TBL_TIPOSERVICO, null, valores);
    }
    
    public int alterar(TipoServico tipo){
       ContentValues valores = new ContentValues();
       int id = tipo.getCodigo();
    	
    	valores.put(TipoServicoOpenHelp.TIPO_DESCRICAO, tipo.getDescricao());
    	valores.put(TipoServicoOpenHelp.TIPO_SETOR, tipo.getSetor().getId());
    	valores.put(TipoServicoOpenHelp.TIPO_INTERNO, tipo.getTipoInternoExterno().getCodigo());
		return dataBase.update(TipoServicoOpenHelp.TBL_TIPOSERVICO, valores, TipoServicoOpenHelp.TIPO_ID +" = "+id , null);
    	
    }
    
    public void excluir(TipoServico tipo){
    	int id = tipo.getCodigo();
    	
    	dataBase.delete(TipoServicoOpenHelp.TBL_TIPOSERVICO,TipoServicoOpenHelp.TIPO_ID +" = "+id , null);
    }
    
    public List<TipoServico> consultar(){
    	List<TipoServico> lista = new ArrayList<TipoServico>();
    	
    	Cursor cursor = dataBase.query(TipoServicoOpenHelp.TBL_TIPOSERVICO, colunas, null, null, null, null, TipoServicoOpenHelp.TIPO_DESCRICAO);
    	cursor.moveToFirst();
    	while (!cursor.isAfterLast()) {
			TipoServico tipo = lerCampos(cursor);
			lista.add(tipo);
			cursor.moveToNext();
			
		}
    	cursor.close();
		return lista;
    	
    }
    
    public TipoServico lerCampos(Cursor cursor){
    	TipoServico tipo = new TipoServico();
		tipo.setCodigo(cursor.getInt(0));
		tipo.setDescricao(cursor.getString(1));
		tipo.getSetor().setId(cursor.getInt(2));
		tipo.getTipoInternoExterno().setCodigo(3);
		return tipo;
    	
    }
}
